/**
 * @description 作品 Model Mongodb
 */

const mongoose = require('../db/mongoose')
const { AutoIncrementID } = require('@typegoose/auto-increment')

const WorkSchema = new mongoose.Schema(
  {
    id: Number,
    uuid: { type: String, unique: true }, // 短链接 uuid，h5 url 中使用，隐藏真正的 id
    title: { type: String }, // 标题
    desc: { type: String }, // 副标题，描述
    coverImg: { type: String }, // 封面图片 url
    contentId: { type: mongoose.Schema.Types.ObjectId }, // 内容 id workContent
    publishContentId: { type: mongoose.Schema.Types.ObjectId }, //发布内容 id，未发布的为空  workPublishContent
    // content: { type: Object, default: { components: [] } }, // components 页面的组件列表; props 页面的属性，如页面背景图片; setting 配置信息，如微信分享配置
    isTemplate: { type: Boolean, default: false }, // true 模版 false 非模版
    isPublic: { type: Boolean, default: false }, // 是否公开到首页，默认 false，模版用
    isHot: { type: Boolean, default: false }, // 是否 hot, 默认 false，模版用
    author: { type: String }, // 作者 username2
    copiedCount: { type: Number, default: 0 }, // 模版被使用的次数
    status: { type: Number, default: 1 }, // 状态：0-删除 1-未发布 2-发布 3-管理员强制下线
    user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, // 作者的 _id，和用户表关联
    latestPublishAt: { type: Date, default: null }, // 最近一次发布的时间
    orderIndex: { type: Number, default: 0 }, // 排序参数
    channels: { type: Array, default: [] } // [{name: 名称, id: 渠道id, status: 状态：0-删除，1-正常}]
  },
  { timestamps: true }
)

WorkSchema.plugin(AutoIncrementID, { field: 'id', trackerCollection: 'works_id_counter', startAt: 1 })
const WorkModel = mongoose.model('Work', WorkSchema)

module.exports = WorkModel
